package com.eco.fanliapp.service;

import com.eco.fanliapp.common.response.ServerResponse;
import com.eco.fanliapp.entity.*;
import com.eco.fanliapp.vo.HaoDanKuItemInfo;
import com.eco.fanliapp.vo.HaoDanKuSearchInfo;
import com.eco.fanliapp.vo.TbkItemInfoGetInfo.NTbkItem;
import com.eco.fanliapp.vo.respone.ResponeOrderResults.OrderDataBean;
import com.eco.fanliapp.vo.respone.ResponeResults;

import java.util.List;

public interface ITaoBaoMethodService
{

	/**
	 * 弹窗返回结果-查询单个商品
	 * @param str
	 * @param userId
	 * @param channelUserId
	 * @return
	 */
	ResponeResults ItemMethon(String str, Long userId,String channelUserId);

	/**
	 * 弹窗返回结果-单个商品id查询
	 * @param str
	 * @param userId
	 * @param channelUserId
	 * @return
	 */
	ResponeResults ItemPopupMethon(String str, Long userId,String channelUserId);


	/**
	 * 好单库通用封转结果-未启用
	 * @param info
	 * @param userId
	 * @return
	 */
	ResponeResults ItemMethon2(HaoDanKuSearchInfo info, Long userId);
	
	/***
	 * 封转方法
	 * 猜你喜欢返回结果
	 * @param userId 
	 */
	ResponeResults OptimusMaterial(Long itemId, String deviceValue, String deviceEncrypt, String deviceType, Long pageSize, Long pageNo, Long userId);

	/***
	 * 封转方法
	 * 单品详情返回结果
	 * @param userId 
	 */
	ResponeResults ItemMethon3(HaoDanKuItemInfo info, Long userId,String channelUserId,String period,Integer isCollect);

	/**
	 * 封转方法
	 * 超级搜索
	 * @param keyword
	 * @param sort
	 * @param pageSize
	 * @param pageNo
	 * @param userId
	 * @return
	 */
	ResponeResults itemMethon4(String keyword, String sort, Long pageSize, Long pageNo, Long userId, Boolean hasCoupon, Boolean issearchOne,String channelUserId,String type);


	/**
	 * 封转方法
	 * 首页返回数据
	 * @param type
	 * @param back
	 * @param recommend
	 * @param cid
	 * @param sort
	 * @param userId
	 * @param free
	 * @return
	 */
	ResponeResults ItemMethon5(Integer type, Integer start, Integer back, Integer cid, Integer recommend,
                               Integer sort, Long userId, Boolean free, Integer companyId);

	/**
	 * 封转方法
	 * 官方商品详情
	 * @param data
	 * @param userId
	 * @return
	 */
	ResponeResults ItemMethon6(List<NTbkItem> data, Long userId,String channelUserId,Integer isCollect);


	/**
	 * 封转方法
	 * 本地库商品详情
	 * @param appGoods
	 * @param userId
	 * @return
	 */
	ResponeResults ItemMethon7(AppGoods appGoods, Long userId,String channelUserId,String period,Integer isCollect);


	/**
	 * 封转方法
	 *免单商品查询
	 * @param type
	 * @param cid
	 * @param pageNum
	 * @param pageSize
	 * @param userId
	 * @return
	 */
	ResponeResults ItemMethon8(
			Integer type, Integer cid, Integer pageNum, Integer pageSize, Long userId, Integer companyId);

	/**
	 * 封转方法
	 * 获取我的订单
	 * @param userId
	 * @param tkStatus
	 * @return
	 */
	List<OrderDataBean> getMeOrderDetailMethon(Integer tkStatus, Integer pageNum, Integer pageSize, Long userId,String orderType,String version);


	/**
	 * 封转方法
	 * 取我的收益-入账中订单-包含自己订单，直接粉丝订单，间接粉丝订单，分享赚订单     tkStatus = 12
	 * @param userId
	 * @param tkStatus
	 * @return
	 */
	List<OrderDataBean> getMeBookedOrderDetail(Integer tkStatus, Integer pageNum, Integer pageSize, Long userId);
	/**
	 * 封转方法
	 * 获取订单详情
	 * @param orderId
	 * @param userId
	 * @return
	 */
	List<OrderDataBean> getOrderIdDetailMethon(Long orderId, Long userId);

	/**
	 *  封转方法
	 * 我的团队订单
	 * @param userId
	 * @param details2
	 * @param i
	 * @return
	 */
	List<OrderDataBean> getTeamOrderDetail(Long appUserId, Long userId, List<AppOrderDetail> details2, int i);



	Integer getCommissionRate(AppCompany appCompany, AppOrderFeeScheme orderFeeScheme, AppGeneralFeeScheme generalFeeScheme, Long userId, Double commission);

	/**
	 * 高佣商品获取固定返
	 *
	 * @return
	 */
	String getFixedCommission(String itemId, Long userId, String fixedCommissionType, List<SyChannelGoods> syChannelGoodsAll);

	/**
	 *
	 * 获取京东的订单
	 * @param userId
	 * @param tkStatus
	 * @return
	 */
	List<OrderDataBean> getJdOrderDetailMethon(Integer tkStatus, Integer pageNum, Integer pageSize, Long userId,String orderType,String version);


	/**
	 * 封转方法
	 * 获取拼多多订单
	 * @param userId
	 * @param tkStatus
	 * @return
	 */
	List<OrderDataBean> getPddOrderDetailMethon(Integer tkStatus, Integer pageNum, Integer pageSize, Long userId,String orderType,String version);



}


